package com.EthanYankang;

import javax.servlet.ServletOutputStream;
import javax.servlet.WriteListener;
import java.io.IOException;

/**
 * @Author: Ethan Yankang
 * @Program: diy-tomcat
 * @Date: 2024-09-08 10:04
 **/
public class ResponseServletGetOutputStream extends ServletOutputStream {

    private final byte[] bytes=new byte[1024];
    private int pos=0;

    public ResponseServletGetOutputStream() {
    }

    public ResponseServletGetOutputStream(int pos) {
        this.pos = pos;
    }

    @Override
    //这里其实就是向浏览器写入一个字节（底层会转化为字节）
    /*
     * @description 注意这里必须要先将欲写回浏览器的字节数据存起来，即使你发送也没用，因为响应首先发送的是响应头、响应体、再才是这里的写回的数据
     *所以必须先将写会的数据先存起来。
     * @params
     * @return
     */
    public void write(int b) throws IOException {
        bytes[pos]=(byte) b;
        //计数写入数据的位置
        pos++;
    }

    public byte[] getBytes() {
        return bytes;
    }

    public int getPos() {
        return pos;
    }


    @Override
    public boolean isReady() {
        return false;
    }

    @Override
    public void setWriteListener(WriteListener writeListener) {

    }
}
